package pl.wr.physics.units.quantum.particleflavour.flavour;

import pl.wr.math.Sign;
import pl.wr.math.number.Fraction;
import pl.wr.physics.units.quantum.IQuantum;

/**
 * Strangeness S is a property of particles, expressed as a quantum number, for
 * describing decay of particles in strong and electromagnetic reactions, which
 * occur in a short period of time. The strangeness of a particle is defined as: <br>
 * S = -(nq - naq) <br>
 * where nq represents the number of strange quarks and naq represents the
 * number of strange antiquarks.
 * 
 * 
 * @version 1.0
 * @author wieslaw.rodak
 * 
 */
public final class Strangeness implements IQuantum {

    public static final String symbol = "S";

    public final Fraction strangeness;

    /** A strangeness representing "0". */
    public static final Strangeness ZERO = new Strangeness(Fraction.ZERO);

    /** A strangeness representing "+1". */
    public static final Strangeness ONE = new Strangeness(Fraction.ONE);

    /** A strangeness representing "-1". */
    public static final Strangeness MINUS_ONE = new Strangeness(Fraction.MINUS_ONE);

    /**
     * @param value
     */
    private Strangeness(Fraction value) {
        strangeness = value;
    }

    /**
     * @param s
     *            The sign of value.
     * @param multiply
     *            The multiply value of 1.
     */
    public Strangeness(Sign s, int multiply) {
        switch (s) {
        case minus:
            multiply = -multiply;
        }
        strangeness = new Fraction(multiply);
    }

    @Override
    public String getTypeParticle() {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public Fraction getValue() {
        // TODO Auto-generated method stub
        return null;
    }
}
